package libra;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;

import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;

//标注该类为SpringBoot的主配置类
@SpringBootApplication
//SpringBoot默认已开启事务，不需要自己手动开启
//@EnableTransactionManagement
//指定包扫描
@ComponentScan(value= {"libra"})
//扫描Servlet组件，java -jar形式运行必须开启 
@ServletComponentScan(value="libra")

//从NacosConfig加载指定dataId的配置文件。
//'autoRefreshed'为动态刷新配置文件，默认为false(关闭)。注意!：该自动刷新针对的是'配置文件源'
@NacosPropertySource(dataId = MainEntry.dataId, autoRefreshed = true)
public class MainEntry {
	public static final String dataId = "bootConfig.json";
	public static void main(String[] args) {
		/*
		 * 启动Spring应用，返回一个ConfigurableApplicationContext的context对象，可以像原来一样从里面通过getbean等方法，获取对象
		 * run()传入的类，一定要是个用@SpringBootApplication注解标注的类，被@SpringBootApplication标注的类被解释为SpringBoot的主配置类。
		 * 当程序执行时，就应该运行该类的main方法来启动SpringBoot应用。
		 */
		ConfigurableApplicationContext cac = org.springframework.boot.SpringApplication.run(MainEntry.class, args);
	}
}
